// error2.cpp -- returning an error code
#include <iostream>
#include <cfloat>   // (or float.h) for DBL_MAX

bool hmean(double a, double b, double *ans);

int main() {
    double x, y, z;

    std::cout << "Enter two numbers: ";
    while (std::cin >> x >> y) {
        if (hmean(x, y, &z)) {
            std::cout << "Harmonic mean of " << x << " and " << y
                      << " is " << z << std::endl;
        } else {
            std::cout << "One Value should not be the negative "
                      << "of the other - try again.\n";
        }
        std::cout << "Enter next numbers <q to quit>: ";\

    }
    std::cout << "Bye!\n";
    return 0;
}

bool hmean(double a, double b, double *ans) {
    if (a == -b) {
        *ans = DBL_MAX;
        return false;
    } else {
        *ans = 2.0 * a * b / (a + b);
        return true;
    }
}